Плохо! Плохо!:  0
Показано с 1 по 5 из 5

Тема: [MV + MZ] DKR_ScreenPhotographer

  1. #1
    Бывалый Аватар для Darchan Kaen
    Информация о пользователе
    Регистрация
    17.06.2013
    Адрес
    Одесса
    Сообщений
    851
    Записей в дневнике
    3
    Репутация: 47 Добавить или отнять репутацию

    По умолчанию [MV + MZ] DKR_ScreenPhotographer

    Название плагина: DKR_ScreenPhotographer

    Авторы: DarchanKaen

    Версия: 1.0

    Дата выхода:
    1.0 - 10.04.2022

    Описание плагина:
    Плагин может сохранять снимок экрана (скриншоты) в формате .png в каталог картинок.
    После сохранения, такой снимок можно выводить на экран игры командой мейкера $gameScreen.showPicture(...);
    Каталог сохранения скринов, при желании, можно менять (но тогда мейкер их не отобразит).

    Нюансы:
    1) В случае совпадения имен, новый скрин затирает старый.
    2) После перезагрузки игры директория для сохранения картинок меняется на стандартную папку мейкера (или же ту, что в параметре плагина).
    3) После создания снимка, подождите минимум 15 кадров перед его показом командой $gameScreen.showPicture(...).
    4) Плагин предназначен для работы ТОЛЬКО в экспортированном на компьютер проекте (т.е. в среде NW.js) и на веб-сервере, телефоне, эмуляторе - работать не будет.

    Использование плагина:
    В параметре можно указать другой каталог хранения снимков.

    Команды(в эвенте команда "Скрипт"):
    DKR.ScreenPhotographer.makePhoto('photoName') - сохраняет снимок экрана с указанным в скобках названием.
    DKR.ScreenPhotographer.changePhotosDir('newDir') - меняет директорию сохранения снимков.

    Код:
    Спойлер Код версии 1.0:

    Код:
    var Imported = Imported || {};
    Imported.DKR_ScreenPhotographer = true;
    
    var DKR = DKR || {};          
    DKR.ScreenPhotographer = DKR.ScreenPhotographer || {}; 
    DKR.ScreenPhotographer.version = 1.0;
    DKR.ScreenPhotographer.parameters = PluginManager.parameters('DKR_ScreenPhotographer');
    
    //----------------------------------------------------------------------------
    /*:
     * @plugindesc (v.1.0.0) Плагин может сохранять снимок экрана (скриншоты) в формате .png в каталог картинок.
     * 
     * @target MV, MZ
     * @author DarchanKaen
     *
     * @help
     *    DKR ScreenPhotographer
     * ----------------------------------------------------------------------------
     * ---Общая информация:
     *    Плагин может сохранять снимок экрана (скриншоты) в формате .png в каталог картинок.
     *    После сохранения, такой снимок можно выводить на экран игры командой мейкера $gameScreen.showPicture(...);
     *    Каталог сохранения скринов, при желании, можно менять (но тогда мейкер их не отобразит).
     * ---Параметры плагина:
     *    Можно указать дерикторию, относительно корня игры, куда сохранять снимки.
     *    Например: './img/'
     * ---Команды(в эвенте команда "Скрипт"):
     *    DKR.ScreenPhotographer.makePhoto('photoName') - сохраняет снимок экрана с указанным в скобках названием.
     *    DKR.ScreenPhotographer.changePhotosDir('newDir') - меняет директорию сохранения снимков.
     * ---Нюансы:
     *    В случае совпадения имен, новый скрин затирает старый.
     *    После перезагрузки игры директория для сохранения картинок меняется на стандартную папку мейкера.
     *    После создания снимка, подождите минимум 15 кадров перед его показом командой $gameScreen.showPicture(...).
     * ----------------------------------------------------------------------------
     * @param photosDir
     * @type text
     * @desc Каталог, куда сохраняются скриншоты (дефолтный: ./img/pictures/ )
     * @default ./img/pictures/
     */
     
    
     
    ( () => {
    
    
    //----DATA: BEGIN
    
    	const gui = require('nw.gui'); 
    	const fs = require('fs');
    	let photosDirectory = DKR.ScreenPhotographer.parameters['photosDir'] || './img/pictures/';	
    
    //----DATA: END
    
    
    //----LOGIC: BEGIN
    
    	const savePhoto = (photoName) => {
    		try{
    			const win = gui.Window.get();
    			let src = `${photosDirectory}${photoName}.png`;
    			win.capturePage( 
    				function(buffer){
    					fs.writeFile(src, buffer, function(err) {
    						if (err){ throw err; }
    					});
    				}, { format : 'png', datatype : 'buffer'} 
    			);
    		}catch(error){
    			console.log('DKR.ScreenPhotographer: something wrong, can`t make photo! Error:', error);
    		}
    	}
    	
    	const setPhotosDirectory = (dir) => {
    		photosDirectory = dir;
    	}
    
    //----LOGIC: END
    
    
    //----COMMANDS: BEGIN
    
    DKR.ScreenPhotographer.makePhoto = function(photoName){
    	savePhoto(photoName)
    }
    
    DKR.ScreenPhotographer.changePhotosDir = function(dir){
    	setPhotosDirectory(dir);
    }
    
    //----COMMANDS: END
    
    })();


    Загрузка:
    Спойлер Ссылки на загрузку версии 1.0:


    Пример использования:
    Спойлер В эвенте, для MV и MZ одинаково:
    1) Команда "Скрипт", в ней:
    DKR.ScreenPhotographer.makePhoto('dkr');

    2) Команда ждать на 15 кадров.

    3) Команда "Скрипт", в ней:
    $gameScreen.showPicture(1, 'dkr', 1, 150, 250, 25, 25, 255, 0);

    ...Детально о команде показа картинок можно узнать тут:
    https://docs.google.com/spreadsheets...h7OHs/htmlview


    Условия поставки плагина:
    Поставляется AS-IS.
    Вся ответственность при использовании - на Пользователе!
    !

    Совместимость:
    Плагин не затрагивает логику работы мейкера, и должен быть совместим с любыми плагинами.
    Тем не менее, совместимость с другими плагинами не гарантируется.

    Спойлер Лирическое отступление:
    Такой плагин был для MV от Hudell, из серии "Orange...".
    Но ссылку я не нашел, да и для MZ вроде его не переделали.
    Ну, теперь есть альтернатива.
    ...Не знаю, когда еще в следующий раз плагин склепаю. От того протестил чуть лучше, вроде бы багов нет.


    P.S:
    Сделанный снимок нужно вызывать командой, в случае если он сделан "на лету", т.е. во время игры.
    Если скрины вы сделали предварительно, до релиза-экспорта, то конечно существующую картинку можно вызвать и из редактора.
    Последний раз редактировалось Darchan Kaen; 10.04.2022 в 10:56. Причина: Важный нюанс. Обновлены ссылки, код очищен от мусора.

  2. #2
    Бывалый Аватар для Darchan Kaen
    Информация о пользователе
    Регистрация
    17.06.2013
    Адрес
    Одесса
    Сообщений
    851
    Записей в дневнике
    3
    Репутация: 47 Добавить или отнять репутацию

    По умолчанию

    Вопрос:
    Нарушает ли использование данного плагина правила RTP-конкурса?
    С одной стороны, он позволяет использовать сторонние файлы (скриншоты).
    С другой - сам же их и создает.
    ?

  3. #3
    Создатель Аватар для Рольф
    Информация о пользователе
    Регистрация
    14.04.2008
    Адрес
    Южно- Сахалинск/Пенза
    Сообщений
    10,146
    Записей в дневнике
    2
    Репутация: 108 Добавить или отнять репутацию

    По умолчанию

    Мне кажется нарушает, так как дает преимущество.

  4. #4

    По умолчанию

    Когда в игре открываешь меню ведь тоже создаётся замыленный скриншот бекграунд, но потом в игре сразу удаляется. Его можно сохранить в памяти как спрайт и использовать. Если удалять сохранённые фотки этого плагина по выходу из игры отличий вроде как и нет.

  5. #5
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,962
    Записей в дневнике
    6
    Репутация: 132 Добавить или отнять репутацию

    По умолчанию

    В мв/мз есть возможность делать скрин карты.
    И его можно использовать в игре.
    Этот плагин не требует дополнительных ресурсов.
    Так что всё вполне в рамках правил.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
[MV + MZ] DKR_ScreenPhotographer